#pragma once
#include "Primitive.h"

class CPlane : public CPrimitive
{

private:
	CVector		*m_NormalVector;
	
public:
	CVector*	GetOrigin() { return m_Origin; };
	void		SetOrigin(CVector _vec) { m_Origin = new CVector(_vec); };
	CVector*	GetNormalVector() { return m_NormalVector; };
	void		SetNormalVector(CVector _vec) { m_NormalVector = new CVector(_vec); };
	int			Intersect(CRay&, CVector&, CVector&);

	// Constructors & destructor
	CPlane(void);
	CPlane(CVector _orig): m_NormalVector(new CVector(CVector::mS_Up)) { m_Origin = new CVector(_orig); m_IsMesh = false; };
	CPlane(CVector _orig, CVector _norm): m_NormalVector(new CVector(_norm)) { m_Origin = new CVector(_orig); m_IsMesh = false; };
	CPlane(CVector _orig, CVector _norm, CLightIntensity _col): m_NormalVector(new CVector(_norm)) { m_Origin = new CVector(_orig); m_Color = new CLightIntensity(_col); m_IsMesh = false; };
	~CPlane(void);
};

